efibootmgr —— 操作 EFI Boot Manager
efibootmgr [-v]
efibootmgr -a -b bootnum
efibootmgr -A -b bootnum
efibootmgr -B -b bootnum
efibootmgr -c -l loader [-aD] [-b bootnum] [-k kernel] [-L label] [-e env]
efibootmgr -E [-d] [-p]
efibootmgr -F
efibootmgr -f
efibootmgr -n -b bootnum
efibootmgr -N
efibootmgr -o bootorder
efibootmgr -t timeout
efibootmgr -T
efibootmgr -u unix-path
efibootmgr 程序操纵UEFI引导管理器如何引导系统。它可以创建和销毁启动方法,以及激活或停用它们。它还可以更改引导方法的定义顺序。它可以创建一个临时引导(BootNext)变量,该变量引用在下次引导时尝试一次的引导方法。
UEFI标准定义了主机如何控制用于引导系统的内容。每种方法都封装在一个持久的UEFI变量中,由UEFI BIOS以 BootXXXX 的形式存储(其中XXXX是大写十六进制数字)。这些变量都有编号,每个变量都描述了从哪里加载引导程序,以及该方法是否处于活动状态(用于引导,否则将跳过该方法)。这些方法的顺序由另一个变量 BootOrder 控制。当前引导的方法使用 BootCurrent 进行通信。还可以设置全局超时。
efibootmgr 要求内核模块 efirt(9) 模块存在或加载,以获取和设置这些非易失性变量。
以下选型可用:
-a --activate
激活给定的 bootnum 引导条目,或者在与 -c 一起使用时激活新条目。
-A -deactivate
停用给定的 bootnum 引导条目。
-b --bootnum bootnum
创建或修改条目时,使用 bootnum 作为索引。
创建新条目时,如果已存在,则失败。为方便起见,如果 bootnum 前缀为“boot”,则忽略该前缀。
-B --delete
删除给定的 bootnum 引导条目。
-c --create
创建一个新的 Boot 变量(也称为方法或条目)。
-D dry-run
处理但不改变任何变量。
-e --env
创建 Boot 变量时,请包含一组环境变量,以便加载程序在解析命令行后进行设置。变量的形式为“a=b”,用空格分隔。这个论点应该被引用。appends these to the end of the Boot 环境变量。在处理其他任何内容之前,loader.efi(8) 将解析此区域并设置其中找到的所有变量。
-E --esp
打印从EFI变量 BootCurrent 和 BootXXXX 导出的ESP设备的FreeBSD路径。这是UEFI用于引导系统当前实例的ESP分区。
-f --fw-ui , -F --no-fw-ui
设置或清除对系统固件的请求,以便在下次启动时在其用户界面中停止。
-k -kernel kernel
内核的路径和名称。
-l --loader loader
加载程序的路径和名称。
-L --label label
方法的可选描述。
-n --bootnext
将 bootnum 引导条目设置为 BootNext 变量。
-N --delete-bootnext
删除 BootNext 可选变量。
-o --bootorder bootorder
将 BootOrder 变量设置为给定的逗号分隔的 bootnum 集。这些数字是十六进制的,以匹配 BootXXXX ,但可能会省略前导零。
-t --set-timeout timeout
设置引导菜单超时值。
-T --del-timeout
删除 BootTimeout 变量。
-u --efidev unix-path
显示 unix-path 的UEFI设备路径。
-v --verbose
在输出中显示引导条目的设备路径。
要显示系统中当前与 Boot 相关的变量:
xxxxxxxxxx efibootmgr -v这将显示可选的 BootNext (如果存在)、BootCurrent (当前启动的方法),然后是可选的 Timeout 值、可能设置的任何 BootOrder ,最后是所有当前定义的 Boot 变量,无论是否处于活动状态。verbose标志(-v)用变量的磁盘分区uuid、大小/偏移量和设备路径来增强此输出。该标志还将包括任何未被引用的(通过BootOrder)变量。
efibootmgr 程序可用于创建新的EFI引导变量。以下命令可用于创建新的引导方法,使用 /boot/efi 下挂载的EFI分区,使用给定的加载器将该方法标记为活动,并将该方法标签为“FreeBSD-15”:
x
efibootmgr -a -c -l /boot/efi/EFI/freebsd/loader.efi -L FreeBSD-15这将导致下一个可用的bootnum被分配给一个新的UEFI引导变量,并给出标签“FreeBSD-15”,例如:
xxxxxxxxxxBoot0009 FreeBSD-15请注意,默认情况下,新创建的启动条目是创建为非活动的,因此上面指定了 -a 标志的原因,以便考虑启动。活动状态由输出中 BootXXXX 名称后面的 * 表示。如果当前 BootOrder 变量存在,它们也会被插入到该变量的第一个位置。它们必须首先设置为活动状态,然后才能被认为可以尝试从启动,否则将被忽略。
xxxxxxxxxxefibootmgr -B -b 0009将删除给定的启动项Boot0009。
要将给定的启动项设置为活动状态:
xxxxxxxxxxefibootmgr -a -b 0009要将给定的引导条目设置为用作 BootNext 变量,而不管其活动状态如何,请使用:
xxxxxxxxxxefibootmgr -n -b 0009要为下次重新启动设置 BootOrder ,请使用:
xxxxxxxxxxefibootmgr -o 0009,0003,... efivar(8), gpart(8), loader.efi(8), uefi(8), efirt(9)统一可扩展固件接口规范可从www.uefi.org获得。